package cn.cloudreal.cbms.unit.action;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;

import cn.cloudreal.cbms.common.util.Constants;
import cn.cloudreal.cbms.common.util.PageBean;
import cn.cloudreal.cbms.unit.service.UnitService;
import cn.cloudreal.cbms.vo.Unit;

import com.opensymphony.xwork2.ActionSupport;

public class UnitAction extends ActionSupport {

	/** serialVersionUID */
	private static final long serialVersionUID = 1L;

	/** 日志工具类实例 */
	private static final Logger log = Logger.getLogger(UnitAction.class);

	/** 服务 */
	private UnitService unitService;

	/** 当前页 */
	int currentPage;

	/** 分页对象 */
	PageBean page;

	List<Unit> units = new ArrayList<Unit>();

	/** 参数 */
	Unit unit;
	String unitID;
	String unitName;

	/**
	 * 列表
	 * 
	 * @return
	 */
	public String list() {
		// 打印进入方法体日志
		if (log.isInfoEnabled()) {
			log.info("Enter UnitAction list() method");
		}
		// 条件
		Map<Object, Object> condition = new HashMap<Object, Object>();
		condition.put("unitID", unitID);
		condition.put("unitName", unitName);
		// 分页对象初始化
		page = new PageBean(currentPage == 0 ? 1 : currentPage,
				Constants.PAGE_SIZE);
		// 查询总记录数
		int totalRecords = unitService.getUnitsCount(condition);
		//int totalRecords = 15;
		//
		page.setTotalRecords(totalRecords);
		// 查询
		 units = unitService.getUnits(condition, page);
		 
//		 http://localhost:8080/CBMSys/getUnits.action

//		for (int i = 1; i < 4; i++) {
//			Unit obj = new Unit();
//			obj.setId(i);
//			obj.setUnitID("U00" + i);
//			obj.setUnitName("部件");
//			obj.setUnitType("123");
//			obj.setFixTime("2012-05-08");
//			obj.setRegisterMan("张超");
//			units.add(obj);
//		}

		// 打印退出方法体日志
		if (log.isInfoEnabled()) {
			log.info("Exit UnitAction list() method");
		}
		return SUCCESS;
	}

	/**
	 * 删除
	 * 
	 * @return
	 */
	public String delete() {
		// 打印进入方法体日志
		if (log.isInfoEnabled()) {
			log.info("Enter UnitAction delete() method");
		}
		// 删除
		unitService.deleteUnit(unit);
		// 打印退出方法体日志
		if (log.isInfoEnabled()) {
			log.info("Exit UnitAction delete() method");
		}
		return SUCCESS;
	}

	/**
	 * 修改
	 * 
	 * @return
	 */
	public String initModify() {
		// 打印进入方法体日志
		if (log.isInfoEnabled()) {
			log.info("Enter UnitAction initModify() method");
		}
		// 查询
		// unit.setUnitID("U001");
		// unit.setUnitName("部件");
		// unit.setUnitType(1);
		// unit.setFixTime("2012-05-08");
		// unit.setRegisterMan("汪韬");
		unit = unitService.detailUnit(unit);
		// 打印退出方法体日志
		if (log.isInfoEnabled()) {
			log.info("Exit UnitAction initModify() method");
		}
		return SUCCESS;
	}

	/**
	 * 修改
	 * 
	 * @return
	 */
	public String modify() {
		// 打印进入方法体日志
		if (log.isInfoEnabled()) {
			log.info("Enter UnitAction modify() method");
		}
		// 编辑
		unitService.modifyUnit(unit);
		// 打印退出方法体日志
		if (log.isInfoEnabled()) {
			log.info("Exit UnitAction modify() method");
		}
		return SUCCESS;
	}

	/**
	 * 详情
	 * 
	 * @return
	 */
	public String detail() {
		// 打印进入方法体日志
		if (log.isInfoEnabled()) {
			log.info("Enter UnitAction detail() method");
		}
		// 查询
		unit = unitService.detailUnit(unit);
		// 打印退出方法体日志
		if (log.isInfoEnabled()) {
			log.info("Exit UnitAction detail() method");
		}
		return SUCCESS;
	}

	/**
	 * 新增
	 * 
	 * @return
	 */
	public String add() {
		// 打印进入方法体日志
		if (log.isInfoEnabled()) {
			log.info("Enter UnitAction add() method");
		}
		// 新增
		unitService.addUnit(unit);
		// 打印退出方法体日志
		if (log.isInfoEnabled()) {
			log.info("Exit UnitAction add() method");
		}
		return SUCCESS;
	}

	public void setUnitService(UnitService unitService) {
		this.unitService = unitService;
	}

	public int getCurrentPage() {
		return currentPage;
	}

	public void setCurrentPage(int currentPage) {
		this.currentPage = currentPage;
	}

	public PageBean getPage() {
		return page;
	}

	public void setPage(PageBean page) {
		this.page = page;
	}

	public List<Unit> getUnits() {
		return units;
	}

	public String getUnitID() {
		return unitID;
	}

	public void setUnitID(String unitID) {
		this.unitID = unitID;
	}

	public String getUnitName() {
		return unitName;
	}

	public void setUnitName(String unitName) {
		this.unitName = unitName;
	}

	public Unit getUnit() {
		return unit;
	}

	public void setUnit(Unit unit) {
		this.unit = unit;
	}

}
